//
//  ViewController.swift
//  QQFriend
//
//  Created by zhang on 16/1/10.
//  Copyright © 2016年 jin. All rights reserved.
//

import UIKit
//遵守了几个协议
class ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate,QQFriendHeaderShowFriendButtonClick {
    //懒加载好有分组
    lazy var qqFriendGroups:[QQFriendGroup] = QQFriendGroup.instanceWithFile()
    @IBOutlet weak var tableView: UITableView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        self.tableView.dataSource = self//指定数据源
        self.tableView.delegate = self//指定代理
        self.tableView.sectionHeaderHeight = 44//设置行高
//        self.tableView.sectionFooterHeight = 0
//        print(self.qqFriendGroups)
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    //返回分组数量
    func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return self.qqFriendGroups.count
    }
    //返回对应cell
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let identifier = "QQFriendCell"
        var cell:UITableViewCell! = tableView.dequeueReusableCellWithIdentifier(identifier)
        if cell == nil
        {
            cell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: identifier)
        }
        cell.textLabel?.text = self.qqFriendGroups[indexPath.section].friends[indexPath.row].name as String
        cell.detailTextLabel?.text = self.qqFriendGroups[indexPath.section].friends[indexPath.row].intro as String
        cell.imageView?.image = UIImage(imageLiteral: (self.qqFriendGroups[indexPath.section].friends[indexPath.row].icon as String))
        return cell
    }
    //返回分组纪录条数
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        //因为默认是要不显示cell的，所以这里根据，分组对象的属性做了下判断，
        if self.qqFriendGroups[section].hideGroup
        {
            return 0
        }
        else
        {
            return self.qqFriendGroups[section].friends.count
        }
    }
    //返回分组头的标题
//    func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
//        return self.qqFriendGroups[section].name as? String
//    }
    //返回自定义的头
    func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
        let header = QQFriendHeader.instance(tableView)
        header.qqFriendGroup = self.qqFriendGroups[section]
        header.delegate = self//设置代理
        header.tag = section//用于之后点击cell传递值来锁定分组
        return header
    }
//    func tableView(tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
//        return nil
//    }
    override func prefersStatusBarHidden() -> Bool {
        return true
    }
    //代理cell点击的方法
    func QQFriendHeaderShowFriendButtonClicked(tag:Int) {
        let indexSet = NSIndexSet(index: tag)
        self.tableView.reloadSections(indexSet, withRowAnimation: UITableViewRowAnimation.Fade)//重新加载所点击的分组
    }
}

